int do_gcode(struct hard_setup *, struct soft_setup *, struct gcode_setup *,
             struct control *, struct pos *, char, double);
   /*enters the g-code logic into controller
     1st parameter -> a pointer to a hardware configuration structure
     2nd parameter -> a pointer to a software configuration structure
     3rd parameter -> a pointer to the control screen structure
     4th parameter -> a pointer to the current coordinate position
     5th parameter -> code letter, either G, M, X, Y, Z, <Aux>, I, J, P, or \n
     6th parameter -> associated number with code
     return value  -> message generated by controller (see "definitions.h")*/




//gcode.c module functions only
double get_ang(int, double, double, double, double);
   /*computes given direction of rotation and end points of arc
     1st parameter -> direction of rotation either CW or CCW
     2nd parameter -> x location of start point relative to arc center
     3rd parameter -> y location of start point relative to arc center
     4th parameter -> x location of end point relative to arc center
     5th parameter -> y location of end point relative to arc center
     return value  -> angle of rotation (negative angle means clockwise rotation)*/
 
double ang_of(double, double);
   /*computes the angle between the positive x axis and a defined point in space
     1st parameter -> x location of point relative to arc center
     2nd parameter -> y location of point relative to arc center
     return value  -> angle between positive x axis and point in space*/

int break_msg(struct hard_setup *, struct soft_setup *, float, float,
              struct pos *, struct pos *,
              double *, double *, double *, double *, double *, int);
   /*performs message display and functionality after a program break
     1st parameter  -> a pointer to a hardware configuration structure
     2nd parameter  -> a pointer to a software configuration structure
     3nd parameter  -> release plane
     4rd parameter  -> a pointer to the start of entity coordinate position
     5th parameter  -> a pointer to the current coordinate position
     6th parameter  -> entity parameter x
     7th parameter  -> entity parameter y
     8th parameter  -> entity parameter z
     9th parameter  -> entity parameter a
     10th parameter -> entity parameter angle
     11th parameter -> entity parameter entity type
                       (LINE_ENT, LINE_G0_ENT, XY_ARC_ENT, YZ_ARC_ENT, ZX_ARC_ENT)
     return value   -> message value (see "definitions.h")*/

double get_move_val(double *, double *, float *, double *, double *, int *);

